package com.bw.sparksql1.job2

import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.SparkSession

/**
  *
  * 案例2
  */
object Job2 {
  def main(args: Array[String]): Unit = {
    Logger.getLogger("org").setLevel(Level.ERROR)
    val spark = SparkSession.builder()
      .appName(this.getClass.getSimpleName)
      .master("local")
      .getOrCreate()

    //形成dataFrame数据结构
    val personDF = spark.read.json("person.json")
    //把json文件封装成为 dataFrame
//    println(personDF)
    //显示数据
//    personDF.show(10,false)
    //显示df的结构化信息
//    personDF.printSchema()
    //显示指定的column
//    personDF.select("name").show()
    //导入隐式转换使用 $
    import spark.implicits._
//    personDF.select($"name",$"age"+1).show
//    personDF.filter($"age" > 22).show
//    personDF.groupBy("age").count().show()

    //基于SQL操作 dataFrame -> 映射为临时的视图
    personDF.createOrReplaceTempView("person")
    spark.sql("select count(*) from person").show()





  }
}
